---@class padding
---@field top number
---@field bottom number
---@field left number
---@field right number
local padding = {}

---@param options { top: number?, bottom: number?, left: number?, right: number? }?
---@return padding
function padding.new(options)
    options = options or {}

    options.top = options.top or 0
    options.bottom = options.bottom or 0
    options.right = options.right or 0
    options.left = options.left or 0

    return options
end

---@param horizontal number
---@param vertical number
function padding.symmetric(horizontal, vertical)
    return {
        top = vertical,
        bottom = vertical,
        right = horizontal,
        left = horizontal
    }
end

---@param value number
function padding.all(value)
    return {
        top = value,
        bottom = value,
        right = value,
        left = value
    }
end

return padding
